{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-05-27T04:57:07.032002Z",
     "start_time": "2018-05-27T04:57:06.629368Z"
    }
   },
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import cv2\n",
    "import matplotlib.pyplot as plt\n",
    "from pathlib import Path\n",
    "from scipy import ndimage as ndi\n",
    "\n",
    "import torch\n",
    "import torch.nn.functional as F\n",
    "from torch.utils.data import DataLoader\n",
    "from torch.autograd import Variable\n",
    "\n",
    "np.random.seed(0)\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-05-27T04:57:07.160123Z",
     "start_time": "2018-05-27T04:57:07.033161Z"
    }
   },
   "outputs": [],
   "source": [
    "import sys\n",
    "sys.path.append('../src/')\n",
    "\n",
    "from model import UNet\n",
    "from dataset import SSSDataset\n",
    "from utils import gen_color_img"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-05-27T04:57:07.162719Z",
     "start_time": "2018-05-27T04:57:07.161247Z"
    }
   },
   "outputs": [],
   "source": [
    "n_sticks = 8"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-05-27T04:57:08.520020Z",
     "start_time": "2018-05-27T04:57:07.163715Z"
    }
   },
   "outputs": [],
   "source": [
    "# Model\n",
    "model = UNet().cuda()\n",
    "model.eval()\n",
    "\n",
    "model_dir = Path('../model')\n",
    "model_path = model_dir.joinpath('model.pth')\n",
    "\n",
    "param = torch.load(model_path)\n",
    "model.load_state_dict(param)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-05-27T04:57:08.523611Z",
     "start_time": "2018-05-27T04:57:08.521162Z"
    }
   },
   "outputs": [],
   "source": [
    "# Dataset for inference\n",
    "test_dataset = SSSDataset(train=False, n_sticks=n_sticks, data_size=16)\n",
    "test_dataloader = DataLoader(test_dataset, batch_size=16,\n",
    "                             shuffle=False, num_workers=0,\n",
    "                             pin_memory=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-05-27T04:57:09.803976Z",
     "start_time": "2018-05-27T04:57:08.524563Z"
    }
   },
   "outputs": [],
   "source": [
    "# Inference\n",
    "images = []\n",
    "sem_pred = []\n",
    "ins_pred = []\n",
    "for images_ in test_dataloader:\n",
    "    images.append(images_.numpy())\n",
    "    images_ = Variable(images_, volatile=True).cuda()\n",
    "    sem_pred_, ins_pred_ = model(images_)\n",
    "    sem_pred.append(F.softmax(sem_pred_, dim=1).cpu().data.numpy())\n",
    "    ins_pred.append(ins_pred_.cpu().data.numpy())\n",
    "\n",
    "images = np.concatenate(images)[:, 0].astype(np.uint8)\n",
    "sem_pred = np.concatenate(sem_pred)[:, 1, :, :]\n",
    "ins_pred = np.concatenate(ins_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-05-27T04:57:09.832211Z",
     "start_time": "2018-05-27T04:57:09.805358Z"
    }
   },
   "outputs": [],
   "source": [
    "# Post Processing\n",
    "p_sem_pred = []\n",
    "for sp in sem_pred:\n",
    "    p_sem_pred.append(ndi.morphology.binary_fill_holes(sp > 0.5))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "ExecuteTime": {
     "end_time": "2018-05-27T04:57:10.482894Z",
     "start_time": "2018-05-27T04:57:09.833246Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x1080 with 9 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig, axes = plt.subplots(3, 3, figsize=(15, 15))\n",
    "plt.gray()\n",
    "\n",
    "for i, ax_ in enumerate(axes):\n",
    "    color_img = gen_color_img(p_sem_pred[i], ins_pred[i], n_sticks)\n",
    "    ax_[0].imshow(images[i])\n",
    "    ax_[1].imshow(~p_sem_pred[i])\n",
    "    ax_[2].imshow(color_img)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "python3.6",
   "language": "python",
   "name": "python3.6"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.4"
  },
  "toc": {
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": "block",
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
